home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Text / bbeditspacestotabs Folder / Space2Tab.c next >
Encoding:
C/C++ Source or Header  |  1993-03-12  |  1.1 KB  |  53 lines  |  [TEXT/KAHL]

  1. #include <SetupA4.h>
  2. #include "ExternalInterface.h"
  3.  
  4. // Spaces To Tabs by Matthew Xavier Mora
  5. // 3-05-93 
  6. // Do with it what you will. But be gentle :-)
  7. // Since you have the source you can correct the bugs yourselves.
  8.  
  9. pascal void main(ExternalCallbackBlock *callbacks, WindowPtr w)
  10. {
  11.     Handle    text;
  12.     char    tabChar = 0x09;
  13.     char    space     = 0x20;
  14.     GrafPtr    save_port;
  15.     long     oldLength;
  16.     EventRecord theEvent;
  17.     register char *textptr;                        //ptr to text
  18.     register char *endChar;                        //ending char
  19.  
  20.     RememberA0();
  21.     SetUpA4();
  22.     
  23.     if (w == nil)
  24.         goto exit;
  25.         
  26.     GetPort(&save_port);
  27.     
  28.     EventAvail(everyEvent,&theEvent);            // Hold down the cmd key for help
  29.     if ( theEvent.modifiers & cmdKey ) {
  30.         Alert(128,nil);
  31.         SetPort(save_port);
  32.         goto exit;
  33.     }
  34.     
  35.     text = callbacks->GetWindowContents(w);
  36.     oldLength = GetHandleSize(text);
  37.     
  38.     HLock(text);                                // lock it to be safe
  39.  
  40.     textptr = *text;
  41.     endChar = textptr + oldLength;
  42.         
  43.     for (; textptr < endChar;textptr++) 
  44.         if (*textptr == space)
  45.                 *textptr = tabChar;
  46.             
  47.  
  48.     HUnlock(text);
  49.     callbacks->ContentsChanged(w);
  50. exit:
  51.     RestoreA4();
  52. }
  53.